/* {وَقُلْ رَبِّ زِدْنِي عِلْمًاً} */
#include<bits/stdc++.h>
using namespace std;
#define TY cin.tie(0), cout.tie(0),cin.sync_with_stdio(0), cout.sync_with_stdio(0);
const int N = 1000;
int arr[N][N];
int main() {
TY
int n;
cin >> n;
int ev = 2, odd = 1;
for (int i = 0; i < n / 2; ++i) {
int k = n / 2 - i;
for (int j = 0; j < k; ++j) {
arr[i][j] = ev, ev += 2;
arr[n - i - 1][j] = ev, ev += 2;
arr[i][n - j - 1] = ev, ev += 2;
arr[n - i - 1][n - j - 1] = ev, ev += 2;
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j)
if (arr[i][j])cout << arr[i][j] << " ";
else cout << odd << " ", odd += 2;
cout << '\n';
}
}
1542A - Odd Set | 1567B - MEXor Mixup |
669A - Little Artem and Presents | 691B - s-palindrome |
851A - Arpa and a research in Mexican wave | 811A - Vladik and Courtesy |
1006B - Polycarp's Practice | 1422A - Fence |
21D - Traveling Graph | 1559B - Mocha and Red and Blue |
1579C - Ticks | 268B - Buttons |
898A - Rounding | 1372B - Omkar and Last Class of Math |
1025D - Recovering BST | 439A - Devu the Singer and Churu the Joker |
1323A - Even Subset Sum Problem | 1095A - Repeating Cipher |
630F - Selection of Personnel | 630K - Indivisibility |
20B - Equation | 600B - Queries about less or equal elements |
1015A - Points in Segments | 1593B - Make it Divisible by 25 |
680C - Bear and Prime 100 | 1300A - Non-zero |
1475E - Advertising Agency | 1345B - Card Constructions |
1077B - Disturbed People | 653A - Bear and Three Balls |